using System;
using System.Reflection;
using System.Diagnostics;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace PickGold.Arguments
{
	/// <summary>
	/// 
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	[ClassInterface(ClassInterfaceType.AutoDispatch)]
	public class MessageEventArgs : EventArgs
	{
		private string _Id;
		private string _Type;
		private string _Level;
		private string _Source;
		private string _Message;
		private Exception _Error;
		private decimal _Value;
		private byte[] _Data;
		private long _Flag;
		private object _Tag;

		/// <summary/>
		public MessageEventArgs()
		{
			this._Id = null;
			this._Type = null;
			this._Level = null;
			this._Source = null;
			this._Message = null;
			this._Error = null;
			this._Value = 0M;
			this._Data = null;
			this._Flag = 0L;
			this._Tag = null;
		}

		/// <summary/>
		public MessageEventArgs(Exception error)
		{
			this._Id = null;
			this._Type = null;
			this._Level = null;
			this._Source = null;
			this._Message = null;
			this._Error = error;
			this._Value = 0M;
			this._Data = null;
			this._Flag = 0L;
			this._Tag = null;
		}

		/// <summary/>
		public MessageEventArgs(string message)
		{
			this._Id = null;
			this._Type = null;
			this._Level = null;
			this._Source = null;
			this._Message = message;
			this._Error = null;
			this._Value = 0M;
			this._Data = null;
			this._Flag = 0L;
			this._Tag = null;
		}

		/// <summary/>
		public MessageEventArgs(string type, string message)
		{
			this._Id = null;
			this._Type = type;
			this._Level = null;
			this._Source = null;
			this._Message = message;
			this._Error = null;
			this._Value = 0M;
			this._Data = null;
			this._Flag = 0L;
			this._Tag = null;
		}

		/// <summary/>
		public MessageEventArgs(string type, string message, byte[] data)
		{
			this._Id = null;
			this._Type = type;
			this._Level = null;
			this._Source = null;
			this._Message = message;
			this._Error = null;
			this._Value = 0M;
			this._Data = null;
			this._Flag = 0L;
			this._Tag = null;
		}

		/// <summary/>
		public string Id
		{
			get
			{
				return this._Id;
			}
			set
			{
				this._Id = value;
			}
		}
		/// <summary/>
		public string Type
		{
			get
			{
				return this._Type;
			}
			set
			{
				this._Type = value;
			}
		}
		/// <summary/>
		public string Level
		{
			get
			{
				return this._Level;
			}
			set
			{
				this._Level = value;
			}
		}
		/// <summary/>
		public string Message
		{
			get
			{
				return this._Message;
			}
			set
			{
				this._Message = value;
			}
		}
		/// <summary/>
		public string Source
		{
			get
			{
				return this._Source;
			}
			set
			{
				this._Source = value;
			}
		}
		/// <summary/>
		public Exception Error
		{
			get
			{
				return this._Error;
			}
			set
			{
				this._Error = value;
			}
		}
		/// <summary/>
		public decimal Value
		{
			get
			{
				return this._Value;
			}
			set
			{
				this._Value = value;
			}
		}
		/// <summary/>
		public byte[] Data
		{
			get
			{
				return this._Data;
			}
			set
			{
				this._Data = value;
			}
		}
		/// <summary/>
		public long Flag
		{
			get
			{
				return this._Flag;
			}
			set
			{
				this._Flag = value;
			}
		}
		/// <summary/>
		public object Tag
		{
			get
			{
				return this._Tag;
			}
			set
			{
				this._Tag = value;
			}
		}
	}
}
